The present disclosure relates to Application Performance Management (APM) software. APM allows users to diagnose performance and other issues with real-time applications. It accomplishes this using agents that gather raw metric data from applications. This raw data is consumed by calculators configured either by the software itself or by client administrators. Calculators evaluate and modify metric data to produce output results, which can be either delivered to a user interface (UI) or consumed by other calculators. The end result is a client UI displaying application status allowing application problem diagnosis and triage.
In larger deployments, it may be necessary to provision many servers, known as collectors, to receive raw metric data from agents. Therefore, each calculator could consume data from any or all collectors, and produce data that could be needed by any other calculator. With some techniques, the calculators are located so that all collectors have a well-known destination for their raw metric data, and so intermediate results are guaranteed to be produced local to their consuming calculators. However, such techniques place an absolute limit on the scalability of the APM software. This limit may correspond to capacity of the host machine running the calculations.